Noise that can be generated in pixel signals output from a CMOS image sensor is classified as noise generated independently in a pixel or pattern noise caused by an internal structure an image sensor. Examples of known pattern noise include vertical stripe noise, horizontal stripe noise, and block noise.
A CMOS image sensor (hereinafter also referred to as a CIS) is provided with ADCs for converting a charge signal read from each pixel into a digital pixel signal. In a case of column ADCs widely used in CMOS image sensors, for example, a structure in which ADCs, each of the ADCs handling a column of pixels arranged vertically among a large number of pixels contraposed vertically and horizontally, are arranged in parallel and in which charge signals are simultaneously read from a line of pixels arranged horizontally and converted from analog to digital is typical. Reading of pixel lines is conducted sequentially by scanning the lines upward from the bottom (or downward from the top), so that a frame of pixels is read.
Stemming from such provision of ADCs for respective columns, however, vertical stripe noise or horizontal stripe noise may appear to be generated in a fixed or random manner on an image output from the CIS.
In general, human eyes are known to have high stripe (line) detection capability and perceive vertical stripe noise or horizontal stripe noise unless the noise is 1/10 or less of noise present independently in each pixel. In the field of CIS development, attempts are currently being made to reduce noise in each pixel to the limit so as to improve image quality, and it is thus difficult to further reduce such horizontal stripe noise and vertical stripe noise by one more order of magnitude than the noise in each pixel.
A specific example of the horizontal stripe noise will now be presented. FIG. 1 illustrates pixel noise intentionally generated by a computer program, in such a manner that independent Gaussian noise (random noise) of 1.0 σ is added to each of 100×100 pixels and Gaussian noise of 0.3 σ common in the line direction (horizontal direction) is further added. In other words, a state in which horizontal stripe noise that is 0.3 times the noise in each pixel is added is obtained.
Note that σ is a unit with a standard deviation of 1/12 when gray levels are expressed by numerical values of 0 (black) to 1 (white). FIG. 1 corresponds to a state in which a gray level of 0.5 is assigned to an average image and noise of 0.5±6 σ can be expressed. The unit σ is also used in the following description.
Vertical stripes among pattern noise are caused by individual variation of ADCs provided for respective columns, more specifically, by failure to completely eliminate offset differences, gain errors, non-linearity, differences in setting time, and the like. Although suppression of vertical stripe noise is basically achieved through correlated double sampling (CDS) on each column, noise left uncancelled is perceived as vertical stripes.
Horizontal stripes among pattern noise are caused by fluctuation of noise added in common to a column due to differences in reading time among lines. Examples of noise source causing horizontal stripes include noise contained in a ramp signal and fluctuations in power supply or bias. For suppression of horizontal stripe noise, a method of adjusting the black levels of respective lines to the same level by using an optical black portion provided in a periphery of a pixel area (refer, for example, to Patent Document 1).
Most of measures against noise including the aforementioned measures have been dealing with noise sources. However, from the viewpoint that such measures dealing with noise sources have already reached a limit, measures to make noise less visible are also proposed. For example, Patent Document 2 proposes a method of randomly replacing an ADC for a column with another at every line.